#ifndef JUGADOR_H
#define JUGADOR_H

#include <stddef.h>
#include <stdbool.h>
/*****************************************************************
 *        		DEFINICION DEL TIPO DE DATO JUGADOR
 *****************************************************************/
typedef struct jugador jugador_t;

/*****************************************************************
 *        		PRIMITIVAS DEL TIPO DE DATO JUGADOR
 *****************************************************************/

/*
*Post: Crea un tipo de dato jugador_t. Devuelve NULL si hubo 
*algun error en el proceso.*/
jugador_t *jugador_crear(const char *nombre, const char *equipo, size_t dorsal);

/*
*Destruye el tipo de dato jugador_t.*/
void jugador_destruir(void* dato_jugador);

/*
*Post: Devuelve el nombre del jugador asociado al tipo de dato
*jugador_t pasado por parametro. 
*Devuelve NULL si el mismo no existe.*/
const char *jugador_obtener_nombre(const jugador_t *jugador);

/*
*Post: Devuelve el nombre del equipo del jugador asociado al
*tipo de dato jugador_t pasado por parametro.
*Devulve NULL si el mismo no existe.*/
const char *jugador_obtener_equipo(const jugador_t *jugador);

/*
*Post: Devuelve la cantidad de goles realizados por el jugador 
*a lo largo del campeonato.
*Devuelve 0 si el dato jugador_t no existe.*/
size_t jugador_obtener_goles(const jugador_t *jugador);

/*
*Post: Devuleve el dorsal que se le adjudico al jugador al ser 
*inscripto en el plantel del equipo.
*Devuelve 0 si el dato jugador_t no existe.*/
size_t jugador_obtener_dorsal(const jugador_t *jugador);

/*
*Incremente en uno la cantidad de goles realizados por el jugador
*en lo que va del campeonato.
*Post: Devuelve false si el dato jugador_t no existe.*/
bool jugador_agregar_gol(jugador_t *jugador);

#endif
